The present disclosure relates generally to systems and methods for three-dimensional sketching and, more particularly, to the inference of three-dimensional geometry from hand-drawn graphical input.
Sketches are used by a variety of individuals within many professional, academic, and technical fields. Designers, teachers, architects, and engineers, for example, may utilize sketches to facilitate conceptualization of new products or ideas. The emerging field of three-dimensional computerized sketching is directed to allowing a user to produce computerized three-dimensional images with an ease and informality comparable to traditional hand-sketching. Three-dimensional computerized sketching may provide many advantages over traditional hand-sketching. A three-dimensional computerized sketch may, for example, allow a user to view the sketch from any angle (e.g., rotate the sketch), add animation to the sketch, and/or perform other computer-augmented enhancements.
Computerized three-dimensional sketch interpretation can be performed either interactively or off-line. In an off-line system, complete two-dimensional drawings are scanned and interpreted by a system to convert them into three-dimensions. In an interactive system, the user draws lines as live input to the system. For interactivity, the accuracy of the three-dimensional analysis must be good, but does not need to be perfect, since the user is available to correct mistakes. However, to maintain interactive speeds, the three-dimensional analysis must be performed quickly to keep up with the user. Also, the analysis should be able to be augmented with feedback to inform the user of the system's results.
Typical three-dimensional drawing applications assume a structured approach where the user creates images by selecting appropriate primitives from a palette. The user sets instances of these primitives into the drawing surface and then manipulates them by setting their properties. Examples of structured three-dimensional modeling programs include three-dimensional Computer Aided Design (CAD) and three-dimensional modeling tools. Three-dimensional CAD tools are used to develop precise, three-dimensional descriptions of physical objects from anything like a house to a toothpaste cap. Special attention in three-dimensional CAD is paid to dimensions and details. Three-dimensional CAD tools may include, for example, tools such as Pro/ENGINEER™ and AutoCAD® 2005 tools. Three-dimensional modeling tools are used to create three-dimensional shapes for purposes such as animation or games. Modeling tools are used to create the shapes of characters and objects. These shapes are then transferred to other tools where they are parameterized to be animated or used in whatever manner is intended. An example of a three-dimensional modeling tool is 3ds Max® 7 tool.
Hand-drawn images are typically created on a computer using two-dimensional “painting” programs. A painting program treats the computer's bitmap display as a canvas for paint. The user selects tools that emulate various kinds of paintbrushes or other pigmentation devices and applies their effect to different portions of the display. The final image is effectively a two-dimensional rectangle of colored pixels. An example of a two-dimensional painting program is Photoshop®.
Some of the properties of three-dimensional drawing and two-dimensional painting may be combined by rendering the two-dimensional image using three-dimensional geometry. This technique is called a “texture map”. Instead of coloring the pixels of a three-dimensional model using computed colors, one chooses the color from a two-dimensional rectangle of pixels. However, this technique does not create three-dimensional geometry from the two-dimensional painting. Instead, it uses three-dimensional geometry created from another source.
Some research systems, such as Robert Zeleznik's SKETCH, convert pen input into three-dimensional geometry using a gesture-based approach. Pen-based gestures are specific marks or stroke patterns that represent commands to the system. For instance, drawing three lines into a single corner point may invoke a command for creating a cubic primitive. The corner of the primitive is placed where the three lines intersect and the sizes of the primitive's edges are made relative to the size of the original marks. Some systems also combine pen gestures with menu-based commands to achieve a similar effect.
Other research systems, such as Quick-sketch by Eggli, allow the designer to draw lines using a pen, but immediately convert the strokes into a set of basic primitives. The imprecisely sketched look of the designer's lines is immediately replaced with smooth lines and arcs. This transformation of sketched lines into straight lines is called performing “clean up” on the image. The goal of these systems is to disambiguate the designer's drawing at the first opportunity. Users of these systems are restricted to drawing only the types of images that the system is able to recognize. This restriction makes systems that clean up the designer's sketches similar to the gesture-based approach.
Another class of research systems attempts to convert paper-based drawings into three-dimensional geometry. The intention is to allow the designer to draw the sketch in a standard two-dimensional medium like paper. The entire drawing is then scanned to convert it into a digital representation. The image is then converted into three-dimensional geometry all at once. One advantage of this technique is that it allows a designer to work with standard paper and pencil instead of using a digital ink device. It also allows one to convert pre-existing sketches the same way. The algorithms for recognizing constraints are limited and can only handle specific geometries and kinds of drawings. When applied to an entire drawing, these algorithms may often fail. As a result, current systems that use this technique restrict the kinds of drawings that they can handle. For example, curved lines or lines that emanate from a surface are always excluded. Grimstead and Martin created one example of this kind of tool that can only handle cubic geometries with three line point intersections. Shptalni and Lipson created a similar but more advanced system that used a genetic algorithm to select which constraints to apply.
The Teddy system by Igarashi supports a restricted class of three-dimensional sketched drawings. This system combines some elements of gesture-based drawing with some forms of free-form drawing. Teddy allows the designer to draw cartoon character-like objects with balloon-like projections and appendages. The designer may use the system to draw a single closed surface with an arbitrary number of appendages that project outward from the body of the object. Line strokes drawn in Teddy are assumed to either fall on the object or are flat to the viewing plane. Also, the designer can only draw curved surfaces and not single lines or surfaces that meet at a corner.
Current three-dimensional drawing and sketching tools are therefore limited in functionality. Current systems may, for example, either convert a user's hand-drawn input into perfect three-dimensional shapes (e.g., not resembling a sketch), utilize the input to infer a command to create a perfect three-dimensional shape, and/or may limit the types of objects that the user may draw.
Accordingly, there is a need for systems and methods for three-dimensional sketching that address these and other problems found in existing technologies.